当我从ipythonshell或ipythonnotebook运行文件时,通常会显示绘图,但当我从bash终端运行文件时,它们不会显示-从bash终端运行时其他一切正常.示例python脚本(trial.py):importmatplotlib.pyplotaspltprint'please,showmygraph'plt.plot([1,2,3],[1,2,3])plt.show()这是我得到的(情节没有出现):[~/Desktop]$pythontrial.pyplease,showmygraph[~/Desktop]$如果我这样做importmatplotlibmatplotli
谁能解释一下直方图中的“bins”是什么(matplotlibhist函数)?假设我需要绘制一些数据的概率密度函数,我选择的bin如何影响它?我该如何选择它们?(我已经在matplotlib.pyplot.hist和numpy.histogram库中阅读过它们,但我不明白) 最佳答案 bins参数告诉您数据将被分成多少个bin。您可以将其指定为整数或bin边缘列表。例如,这里我们要求20个箱子:importnumpyasnpimportmatplotlib.pyplotaspltx=np.random.randn(1000)plt.
所以,我认为这将非常简单,但我一直很难在一个易于理解的示例中找到我正在寻找的内容。基本上我想制作相位图,所以假设我有一个二维数组,如何让matplotlib将其转换为可以附加标题、轴和图例(彩条)的图。我正在寻找一种极其简单的基本解决方案,它只使用适用于任何二维数组的所需内容。我确定这很简单,我只是有点厚,但我真的有很多麻烦。我一直在使用示例工具,但它们似乎不太适合我正在尝试做的事情:我喜欢这个图表的一般外观,我希望能够传入一个2dArray并得到同样的结果:importnumpyasnpimportmatplotlibasmlimportmatplotlib.pyplotaspltH
我正在开发一个Web应用程序,并希望在页面的不同位置显示一个图形及其图例。这意味着我需要将图例保存为单独的png文件。这在Matplotlib中是否可能以一种或多或少直接的方式实现? 最佳答案 这可以工作:importpylabfig=pylab.figure()figlegend=pylab.figure(figsize=(3,2))ax=fig.add_subplot(111)lines=ax.plot(range(10),pylab.randn(10),range(10),pylab.randn(10))figlegend.l
我正在开发一个python(2.7)程序,该程序会产生许多不同的matplotlib图形(数据不是随机的)。我愿意实现一些测试(使用unittest)以确保生成的数字是正确的。例如,我将预期的图形(数据或图像)存储在某个地方,我运行我的函数并将结果与引用进行比较。有没有办法做到这一点? 最佳答案 在我的experience,图像比较测试最终带来的麻烦多于其值(value)。如果您想跨多个系统(如TravisCI)运行持续集成,这种情况尤其如此,这些系统可能具有稍微不同的字体或可用的绘图后端。即使功能完全正常工作,要保持测试通过也
对于一个项目,我需要知道我的matplotlib图形的当前大小(以像素为单位),但我找不到如何做到这一点。有谁知道怎么做? 最佳答案 importmatplotlib.pltfig=plt.figure()size=fig.get_size_inches()*fig.dpi#sizeinpixels为当前的人物做这件事,fig=plt.gcf()size=fig.get_size_inches()*fig.dpi#sizeinpixels您可以通过以下方式获得相同的信息:bbox=fig.get_window_extent().tr
我正在尝试将一条最适合我的matplotlib图表的线性线拟合。我不断收到x和y第一维不同的错误。但是它们的长度都是15。我做错了什么?importmatplotlib.pyplotaspltfromscipyimportstatsimportnumpyasnpx=[0.46,0.59,0.68,0.99,0.39,0.31,1.09,0.77,0.72,0.49,0.55,0.62,0.58,0.88,0.78]y=[0.315,0.383,0.452,0.650,0.279,0.215,0.727,0.512,0.478,0.335,0.365,0.424,0.390,0.585,
是否可以在matplotlib中绘制具有可变线宽的线?例如:frompylabimport*x=[1,2,3,4,5]y=[1,2,2,0,0]width=[.5,1,1.5,.75,.75]plot(x,y,linewidth=width)这不起作用,因为linewidth需要一个标量。注意:我知道*fill_between()*和*fill_betweenx()*。因为这些仅填充x或y方向,所以这些对于您有斜线的情况并不公平。希望填充始终垂直于线。这就是为什么要寻找可变宽度线的原因。 最佳答案 使用LineCollections
我正在尝试创建一个函数,该函数将绘制我告诉它的任何公式。importnumpyasnpimportmatplotlib.pyplotaspltdefgraph(formula,x_range):x=np.array(x_range)y=formulaplt.plot(x,y)plt.show()当我尝试调用它时会发生以下错误,我相信它会在它到达y=formula之前尝试进行乘法运算。graph(x**3+2*x-4,range(-10,11))Traceback(mostrecentcalllast):File"",line1,ingraph(x**3+2*x-4,range(-10,
importmatplotlib.pyplotaspltfrommpl_toolkits.mplot3dimportAxes3D设置纵横比适用于二维图:ax=plt.axes()ax.plot([0,1],[0,10])ax.set_aspect('equal','box')但不适用于3d:ax=plt.axes(projection='3d')ax.plot([0,1],[0,1],[0,10])ax.set_aspect('equal','box')3dcase有不同的语法,还是没有实现? 最佳答案 从matplotlib3.3